class Solution {
    public String tree2str(TreeNode root) {
        StringBuffer str = new StringBuffer() ;
        createStr(root,str);
        return str.toString() ;
    }
    private void createStr(TreeNode root , StringBuffer str){
        if(root == null) return ;
        str.append(root.val);
        if(root.left != null){
            str.append("(");
            createStr(root.left , str);
            str.append(")");
        }else{
            if(root.right != null){
                str.append("()");
            }else{
                return ;
            }
        }

        if(root.right != null){
            str.append("(");
            createStr(root.right , str);
            str.append(")");
        }

    }

}